public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }

    /**
     * 思路：定义left和right，通过right-left来获得最大连续1
     * 先让right向右移动，至到出现的0的数量大于k，此时让left开始向右开始移动
     * @param nums
     * @param k
     * @return
     */
    public int longestOnes(int[] nums, int k) {
        //使用滑动窗口
        int n=nums.length;
        int left =0;
        int right=0;
        int countZero=0;
        int max=0;
        while(right<n){
            //通过right进行countZero++
            if(nums[right]==0){
                countZero++;
            }
            //先确定right位置，然后下来通过countZero--来确定left位置
            while(countZero>k){
                if(nums[left]==0){
                    countZero--;
                }
                left++;
            }
            right++;
            //通过right-left即可获得最大长度1的数量
            max=Math.max(max,right-left);
        }
        return max;
    }
}